package com.by.course.serivce;

import com.baomidou.mybatisplus.extension.service.IService;
import com.by.course.entity.base.BaseResult;
import com.by.course.entity.base.PageResult;
import com.by.course.entity.bo.BaseCourse;
import com.by.course.entity.vo.course.req.*;
import com.by.course.entity.vo.course.resp.BaseCourseResultVO;
import com.by.course.entity.vo.lesson.req.AddBaseLessonVO;
import com.by.course.entity.vo.lesson.req.DeleteBaseLessonVO;
import com.by.course.entity.vo.lesson.req.GetBaseLessonVO;
import com.by.course.entity.vo.lesson.req.UpdateBaseLessonVO;
import com.by.course.entity.vo.lesson.resp.BaseLessonResultVO;

public interface BaseCourseService extends IService<BaseCourse> {

    BaseResult<String> createCourse(AddBaseCourseVO vo);

    BaseResult<String> updateCourse(UpdateBaseCourseVO vo);

    BaseResult<String> deleteCourse(DeleteBaseCourseVO vo);

    BaseResult<BaseCourseResultVO> getCourseById(GetBaseCourseVO vo);

    BaseResult<PageResult<BaseCourseResultVO>> queryCourses(GetBaseCourseVO vo);

    BaseResult<String> createLesson(AddBaseLessonVO vo);

    BaseResult<String> updateLesson(UpdateBaseLessonVO vo);

    BaseResult<String> deleteLesson(DeleteBaseLessonVO vo);

    BaseResult<BaseLessonResultVO> getLessonById(GetBaseLessonVO vo);
}
